package com.coolw.dynamic.thread.pool.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.coolw.common.api.PageResponse;
import com.coolw.dynamic.thread.pool.domain.request.ThreadPoolConfigAddRequest;
import com.coolw.dynamic.thread.pool.domain.request.ThreadPoolConfigPageRequest;
import com.coolw.dynamic.thread.pool.domain.request.ThreadPoolConfigUpdateRequest;
import com.coolw.dynamic.thread.pool.domain.response.ThreadPoolConfigResponse;
import com.coolw.dynamic.thread.pool.entity.ThreadPoolConfigEntity;

import java.util.List;

/**
 * 线程池配置Service
 *
 * @author coolw
 * @date 2024/5/15 14:37
 */
public interface ThreadPoolConfigService extends IService<ThreadPoolConfigEntity> {

    /**
     * 分页查询-线程池配置列表
     *
     * @param request 请求数据
     * @return 分页结果
     */
    PageResponse<ThreadPoolConfigResponse> pageList(ThreadPoolConfigPageRequest request);

    /**
     * 保存线程池配置
     *
     * @param request 请求数据
     * @return 新增结果
     */
    boolean save(ThreadPoolConfigAddRequest request);

    /**
     * 更新线程池配置
     *
     * @param request 请求数据
     * @return 更新结果
     */
    boolean update(ThreadPoolConfigUpdateRequest request);

    /**
     * 查询线程池配置
     *
     * @param poolCode 线程池代码
     * @return 线程池配置
     */
    ThreadPoolConfigEntity getOneByPoolCode(String poolCode);

    /**
     * 查询线程池配置列表
     *
     * @param poolCodes 线程池代码列表
     * @return 线程池配置列表
     */
    List<ThreadPoolConfigEntity> listByPoolCodes(List<String> poolCodes);
}
